﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using BBMS.DLL.Forms.Base;
using BBMS.DLL.DataContract;
using BBMS.DLL.Base;
using System.Collections;
using ExcelLibrary.SpreadSheet;

namespace BBMS.DLL.Forms.Catalog.BillType
{
    public partial class frmBillTypeFilter : FrmFilterBase
    {
        public frmBillTypeFilter()
        {
            InitializeComponent();
        }
        public new static readonly string FunctionKey = "DMLoaiChungTu";
        protected override string GetFunctionKey() { return "DMLoaiChungTu"; }
        protected override ObjectBase GetObjectBase() { return new BBMS.DLL.DataContract.LoaiChungTu(); }

        protected override void GenColHeaders()
        {
            lvList.Clear();
            lvList.Columns.Add("Mã", 80);
            lvList.Columns.Add("Tên", 250);
            lvList.Columns.Add("Là chứng từ chi", 100);
            lvList.Columns.Add("Có thuế VAT", 100);
        }
        protected override ArrayList GenSampleData()
        {
            //ArrayList ar = new ArrayList();
            //ar.Add(new string[] { "Mã", "Tên", "Là chứng từ chi", "Có thuế VAT" });
            //ar.Add(new string[] { "100", "Chứng từ loại 1", "Có", "Không"});
            //ar.Add(new string[] { "200", "Chứng từ loại 2", "Có", "Có" });
            // define col width
            //ar.Add(new int[] { 100, 300, 300});
            ArrayList ar = new ArrayList();
            ar.Add(new string[] { "Mã", "Tên", "Là chứng từ chi","Có thuế VAT"});
            LoaiChungTu loaiChungTuList = new LoaiChungTu();
            ArrayList arr = loaiChungTuList.GetAllObject(fParams);
            if (arr != null)
            {
                for (int i = 0; i < arr.Count; i++)
                {
                    LoaiChungTu lcc = (LoaiChungTu)arr[i];
                    ar.Add(new string[] { lcc.Ma, lcc.Ten, lcc.IsChi.ToString(), lcc.HasVat.ToString() });
                }
            }
            return ar;
        }

        protected override ArrayList GetImportedList(Worksheet sheet)
        {
            ArrayList arret = new ArrayList();
            for (int i = 1; i < sheet.Cells.Rows.Count; i++)
            {
                LoaiChungTu lcc = new LoaiChungTu();
                Cell cell = sheet.Cells[i, 0];
                lcc.Ma = cell.Value.ToString();
                cell = sheet.Cells[i, 1];
                lcc.Ten = cell.Value.ToString();
                cell = sheet.Cells[i, 2];
                if (cell.Value.ToString() != "") lcc.IsChi = Convert.ToBoolean(cell.Value.ToString());
                cell = sheet.Cells[i, 3];
                if (cell.Value.ToString() != "") lcc.HasVat = Convert.ToBoolean(cell.Value.ToString());
                arret.Add(lcc);

            }
            return arret;
        }

        protected override void UpdateFilterParams()
        {
        }

        protected override FrmEditBase CreateEditForm(ObjectBase obj)
        {
            return new frmBillTypeUpdate(obj);
        }

        protected override void AddNewObjectToList(BBMS.DLL.Base.ObjectBase obj)
        {
            ListViewItem it = new ListViewItem(((LoaiChungTu)obj).Ma);
            it.SubItems.Add(((LoaiChungTu)obj).Ten);
            bool isChi = ((LoaiChungTu)obj).IsChi;
            bool hasVAT = ((LoaiChungTu)obj).HasVat;
            if (isChi) it.SubItems.Add("Có");
            else it.SubItems.Add("Không");
            if (hasVAT) it.SubItems.Add("Có");
            else it.SubItems.Add("Không");
            it.Tag = obj;
            lvList.Items.Add(it);
        }

        protected override void UpdateObjectToList(BBMS.DLL.Base.ObjectBase obj)
        {
            foreach (ListViewItem it in lvList.Items)
            {
                if (((LoaiChungTu)it.Tag).Ma == ((LoaiChungTu)obj).Ma)
                {
                    it.SubItems[1].Text = ((LoaiChungTu)obj).Ten;
                    bool isChi = ((LoaiChungTu)obj).IsChi;
                    bool hasVAT = ((LoaiChungTu)obj).HasVat;
                    if (isChi) it.SubItems[2].Text = "Có";
                    else it.SubItems[2].Text = "Không";
                    if (hasVAT) it.SubItems[3].Text = "Có";
                    else it.SubItems[3].Text = "Không";
                    it.Tag = obj;
                    break;
                }
            }
        }
    }
}
